package OtherAlgorithm;

public class GetMax {

    // 递归求数组中的最大值:时间复杂度O(N)
    public static int getMax(int[] arr) {
        return process(arr, 0, arr.length - 1);
    }

    // 求arr中[L,R]范围的最大值
    public static int process(int[] arr, int L, int R) {
        if (L == R) {
            return arr[L];
        }
        int mid = L + ((R - L) >> 1); // 中点
        int leftMax = process(arr, L, mid);
        int rightMax = process(arr, mid + 1, R);
        return Math.max(leftMax,rightMax);
    }

}
